perm filename PTMOVX.F4[PAG,LCS]4 blob
sn#597511 filedate 1981-07-04 generic text, type T, neo UTF8
00100 C****** PTMOVE.F4 ALSO SUBR. TURN (FOR PAGE-TURN FINDING)
00200 SUBROUTINE PTMOVE(RN,PWDS)
00300 IMPLICIT INTEGER(A-Q,S-Z)
00400 REAL POS,EXTEN,PRCNT,ACCX,SPFAC
00500 DIMENSION R(2,400),IR(2,400),RN(1),PWDS(1)
00600 COMMON/KNR/KR(400) /NNP/NP(400) /JSTFY/ROV,PRCNT,RJSZ
00700 COMMON/STF/RSTFAC(0/7),RSTJ2 /KJY/ KY,JY /JWDS/RRN(3300)
00800 COMMON R2,JA,CENTR,J2,RJQ(18),RNO,JR,LX,RDIS
00900 COMMON/POSI/STFF(0/7),JJ2,POS/LLL/ITEM,LL,I,IX
01000 1 /IPG/IPG,JPG,BRACK(8),RSTNUM(8),RPSZ(8)
01100 EQUIVALENCE (R5,RJQ(3)),(R4,RJQ(2))
01200 1,(R3,RJQ(1)),(R8,RJQ(6)),(R9,RJQ(7))
01300 1,(IR,R,RRN)
01400 DATA RSP/2.7/,RI/4.7/,SPFAC/2.7/
01500 C RI IS SIZE FACTOR FOR SPACING. IF LARGER THEN REQUIRES MORE SPACE.
01600 JJ2=-1
01700 J2=0
01800 C 99=BACKUP
01900 IF(LL.EQ.'J')GO TO 12
02000 RDIS=0
02100 CCC66 NST=1
02200 JJ=0
02300 IF(R4.NE.R8.OR.R5.NE.R9)JJ=-1
02400 JY=0
02500 C JY IS CHANGED IN GETPTS
02600 IF(JJ)CALL GETPTS(LX,RN,PWDS)
02650 C****** LX NOT USED IN GETPTS ********
02700 IF(JY.EQ.0)RETURN
02800 CALL MOVIT(RN,KR,R4,R5,R8,R9)
02900 RETURN
03000 12 IF(R4.EQ.0)R4=.001
03100 CCC IF(R5.EQ.0)R5=200
03200 RCNT=0
03300 RRT=R5
03400 RZRO=R4
03500 RJSZ=RI
03600 CALL GETPTS(LX,RN,PWDS)
03660 C****** LX NOT USED IN GETPTS ********
03700 IF(JY.EQ.0)RETURN
03800 ROV=RRT
03900 PRCNT=1.
04000 CCC NOT USED IN PAGE R7=R2
04100 19 IF(RCNT.GT.9)GO TO 101
04200 RJSZ=RJSZ-.06
04300 RP=PRCNT
04400 RCNT=RCNT+1
04500
04600 CALL JUSTFY(JPG-1,R,IR,KR,NP,RN,RPSZ,-1.0,R4,R5,R6,R8,R9)
04700 C RPSZ HAS ADJUSTED SIZE FACTOR FOR EACH STAFF.
04800 CCC CALL JUSTFY(JPG-1,R,IR,KR,NP,RN,RSTFAC,-1.0,R4,R5,R6,R8,R9)
04900
05000 110 IF(ROV.LE.RRT+.01)RETURN
05100 IF(RJSZ.GT.4)RJSZ=4
05200 PRCNT=(ROV-RZRO)/(RRT-RZRO)
05300 IF(PRCNT.NE.RP)GO TO 19
05400 C GO BACK AND EXPAND SOME MORE
05500 101 R4=RZRO
05600 R5=ROV
05700 R8=RZRO
05800 R9=RRT-.001
05900 C JUSTIFYING SPACE DIMINISHES EACH TIME AROUND.
06000 CALL MOVIT(RN,KR,R4,R5,R8,R9)
06100 C RVX SHOULD BE FARTHEST POINT TO RIGHT.
06200 END
06300
06400 SUBROUTINE TURN(J,K,L,X)
06500 C FINDS RESTS BEFORE AND AFTER BAR LINES FOR PAGE TURNS
06600 COMMON /PX/KPN(1) /Q/Q(1)
06700 DATA RMETER/4.0/
06800 DO 1 M=J,K,L
06900 R=CODEN(KPN,M,Q,N)
07000 IF(R.EQ.1)RETURN
07100 IF(R.EQ.4)RETURN
07200 IF(R.NE.18)GO TO 3
07300 C FINDS LAST METER GIVEN (4/4 IS DEFAULT)
07400 IF(Q(N+5).LT.98)GO TO 4
07500 RMETER=4
07600 GO TO 1
07700 4 RMETER=4.01/Q(N+6)*Q(N+5)
07800 C 2ND PART OF COMPOSITE METERS ARE IGNORED.*******
07900 GO TO 1
08000 3 IF(R.NE.2)GO TO 1
08100 IF(Q(N).LT.6)GO TO 2
08200 C LOOK FOR NUMBERED RESTS AND REPEAT BARS (P8=-4, -5)
08300 IF(Q(N+8).LE.-4)RETURN
08400 C NOW WE HAVE A NUMBERED REST. MULT. NUMB. BY RHYTH. VALUE OF METER.
08500 X=X+Q(N+8)*RMETER
08600 GO TO 1
08700 2 X=X+Q(N+7)
08800 1 CONTINUE
08900 END